package compilador.analisadorLexico;

/**
 *
 * @author Henrique
 */

public enum TokenClass {
	PALAVRA_RESERVADA ("Palavra Reservada"),
	IDENTIFICADOR ("Identificador"),
	//LETRA ("Letra"),
	
	CHARCONST ("CharConst"),
	
	//DIGITO ("Digito"),
	NUMERO ("Numero"),
	
	OPERADOR ("Operador"),
	DELIMITADOR ("Delimitador"),
	ERRO_LEXICO ("Erro Léxico"),
        
        COMENTARIO ("Comentario");

	
	private String nome;
	
	private TokenClass(String nome) {
		this.nome = nome;
	}

	
	public String getNome() {
		return nome;
	}
	
	/*public boolean permiteAtributo() {
		return permiteAtributo;
	}*/
	
	@Override
	public String toString() {
		return nome;
	}
        
        /*
         * Palavras reservadas: break, class, const, else, if, new, read, return, void, while, write, int, char
         *
         * identificadores: Letra { Letra | Dígito | “_” }
         *
         * Número: Dígito { Dígito }
         *
         * charConst: “’” Letra ∪ Dígito ∪ !”#$%&’()*+/:;<=>?@ (=ASCII: 32 .. 126) “’”
         * 
         * Letra: a..z ∪ A..Z
         * 
         * Dígito: 0..9
         * 
         * Operadores: + - * / == != > >= < <= && || = ++ -- . [ ] ! ,
         * 
         * Delimitadores: ; ( ) { }
         * 
         * Comentários: De / * até * /
         * 
         */ 
}
